Using LL/SC to Simplify Word-based Software Transactional Memory

نویسندگان

  • Virendra J. Marathe
  • Michael L. Scott
چکیده

While compare-and-swap (CAS) and load-linked / store-conditional (LL/SC) are equally powerful in principle, there are circumstances in which one or the other is significantly easier to use. We highlight one example in this paper. Specifically, we use LL/SC to significantly simplify the “stealing” and “merging” mechanism used to ensure correct nonblocking behavior in Harris and Fraser’s word-based software transactional memory system (WSTM). Our simplification exploits the observation that LL/SC, as conventionally implemented, provides a natural atomic implementation of a restricted form of k-comparesingle-swap.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

LV*: A low complexity lazy versioning HTM infrastructure

Transactional memory (TM) promises to unlock parallelism in software in a safer and easier way than lock-based approaches but the path to deployment is unclear for several reasons. First of all, since TM has not been deployed in any machine yet, experience of using it is limited. While software transactional memory implementations exist, they are too slow to provide useful experience. Existing ...

متن کامل

ABA Prevention Using Single-Word Instructions

The ABA problem is a fundamental problem that affects almost all lock-free algorithms. The atomic primitives LL/SC/VL (Load-Linked, Store-Conditional, Validate) offer a convenient way for algorithm designers to reason about lock-free algorithms, without concern for the ABA problem. However, for practical architectural reasons, no processor architecture supports the ideal semantics of LL/VL/SC. ...

متن کامل

A Qualitative Survey of Modern Software Transactional Memory Systems

Software Transactional Memory (STM) can be defined as a generic nonblocking synchronization construct that allows correct sequential objects to be converted automatically into correct concurrent objects. In STM, a transaction is defined as a sequence of instructions that atomically modifies a set of concurrent objects. The original STM proposed by Shavit and Touitou worked on static transaction...

متن کامل

Debugging with Transactional Memory

Transactional programming promises to substantially simplify the development of correct, scalable, and efficient concurrent programs. Designs for supporting transactional programming using transactional memory implemented in hardware, software, and a mixture of the two have emerged recently. To our knowledge, nobody has yet addressed issues involved with debugging programs executed using transa...

متن کامل

Pathological Interaction of Locks with Transactional Memory

Transactional memory (TM) promises to simplify multithreaded programming. Transactions provide mutual exclusion without the possibility of deadlock and the need to assign locks to data structures. To date, most investigations of transactional memory have looked at purely transactional systems that do not interact with legacy code using locks. Unfortunately, the reality of software engineering i...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2005